using net_work.Common.Request;
using net_work.Common.Result;
using net_work.Data.DTO.Cam;
using net_work.Data.Entity.Cam;
using net_work.Data.VO.Cam;

namespace net_work.IService.Cam;

public interface IMessageService
{
    /// <summary>
    /// 分页查询消息
    /// </summary>
    /// <param name="request">查询参数</param>
    /// <returns>分页结果</returns>
    Task<PagedResult<MessageResult>> GetMessagesPagedAsync(PagedRequest request);

    /// <summary>
    /// 根据消息ID查询消息信息
    /// </summary>
    /// <param name="messageId">消息ID</param>
    /// <returns>消息信息</returns>
    Task<Message?> SelectByIdAsync(long messageId);

    /// <summary>
    /// 插入消息
    /// </summary>
    /// <param name="messageAddRequest">新增消息实体</param>
    /// <returns>新增消息ID</returns>
    Task<long> InsertMessage(MessageAddRequest messageAddRequest);

    /// <summary>
    /// 查看消息
    /// </summary>
    /// <param name="messageIds">消息ID集合</param>
    /// <returns>是否成功</returns>
    Task<int> UpdateMessage(List<long> messageIds);

    /// <summary>
    /// 删除消息
    /// </summary>
    /// <param name="ids">消息ID集合</param>
    /// <returns>是否成功</returns>
    Task<int> DeleteMessageByIds(List<long> ids);
}